<?php
/*
 * enviaCorreoAutenticado
 * string body
 * array destino(mail, nombre)
 * asunto
 */
function enviaCorreoAutenticado($body,$destino,$asunto="[INV] Reestablecer Contrase=?ISO-8859-1?Q?=F1?=a") {
    require_once(getcwd()."/include/utils/phpmailer/class.phpmailer.php");

    $mail             = new PHPMailer();
    $body             = eregi_replace("[\]",'',$body);
    $cuenta_correo=array(
        "email"=>"j.delcastillos@gmail.com",
        "password"=>"2714242U",
          "responder_a"=>"juego@inv.com.pe",
    );
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->Host       = "smtp.gmail.com"; // SMTP server
    $mail->SMTPDebug  = 1;                     // enables SMTP debug information (for testing)
    // 1 = errors and messages
    // 2 = messages only
    $mail->SMTPAuth   = true;                  // enable SMTP authentication
    $mail->Port       = 587;                    // set the SMTP port for the GMAIL server
    $mail->Username   = $cuenta_correo['email']; // SMTP account username
    $mail->Password   = $cuenta_correo['password'];        // SMTP account password
    $mail->From=$cuenta_correo['responder_a'];
    $mail->FromName='INV';
    $mail->SMTPSecure   = "tls";
    $mail->AddReplyTo($cuenta_correo['responder_a'],"INV");
    $mail->Subject    = $asunto;
    $mail->AltBody    = "Para visualizar el archivo, utilizar una herramienta compatible con HTML!"; // optional, comment out and test
    $mail->Body=$body;    
    $mail->AddAddress($destino['mail'], $destino['nombre']);
    
    error_log($destino['mail']." nombre: ". $destino['nombre']);
    if(!$mail->Send()) {
        error_log("-------------->Mailer Error: " . $mail->ErrorInfo);
    } else {
        error_log("-------------->Message sent!");
    }
    $mail->SmtpClose();

}
function generatePassword($length = 8)
  {
    // start with a blank password
    $password = "";
    // define possible characters - any character in this string can be
    // picked for use in the password, so if you want to put vowels back in
    // or add special characters such as exclamation marks, this is where
    // you should do it
    $possible = "2346789bcdfghjkmnpqrtvwxyzBCDFGHJKLMNPQRTVWXYZ";
    // we refer to the length of $possible a few times, so let's grab it now
    $maxlength = strlen($possible);
    // check for length overflow and truncate if necessary
    if ($length > $maxlength) {
      $length = $maxlength;
    }
    // set up a counter for how many characters are in the password so far
    $i = 0;
    // add random characters to $password until $length is reached
    while ($i < $length) {
      // pick a random character from the possible ones
      $char = substr($possible, mt_rand(0, $maxlength-1), 1);
      // have we already used this character in $password?
      if (!strstr($password, $char)) {
        // no, so it's OK to add it onto the end of whatever we've already got...
        $password .= $char;
        // ... and increase the counter by one
        $i++;
      }
    }
    return $password;
}
function reestablecerPWD($usuario){
    require_once(getcwd()."/Modelo/Usuario.php");
    $pwd=generatePassword();
    
    $texto="<html><body>Se ha generado una nueva contrase&ntilde;a:<br><br>
        -Usuario: ".$usuario['usuario']."<br>
        -Contrase&ntilde;a: ".$pwd."<br>
            Atte. <br>
            Inversiones PUCP<br>
            <img src='http://inv.com.pe/logo%20inversiones2.gif' width='100'>
            </body></html>";
    enviaCorreoAutenticado($texto,$usuario);
    Usuario::cambiaPWD($usuario['idusuario'], $pwd);

}
function testUnique(){
    session_start();
    if (!isset($_SESSION['uid'])) return false;
    if (!isset($_REQUEST['uid'])) return false;
    if (trim($_REQUEST['uid']) !== $_SESSION['uid']) return false;
    return true;
}
function generateUID(){
    if (isset($_SESSION['uid'])){
        return $_SESSION['uid'];
    }else{
        $_SESSION['uid'] = uniqid("test_", true);
        return $_SESSION['uid'];
    }
}
function killVars(){
    unset($_SESSION['uid']);
    unset($_POST);
}
function logout(){
    session_start();
    session_destroy();
}
function olvidaPWD(){
    
    require_once("Modelo/Usuario.php");
    $usuario=false;
    if (isset($_REQUEST['usuario']) and !empty($_REQUEST['usuario']) and
            isset($_REQUEST['dni']) and !empty($_REQUEST['dni']))
        $usuario=Usuario::validaDatosUsuario($_REQUEST['usuario'],$_REQUEST['dni']);
    else
         { header("Location: index.php?accion=olvidoPwd&error=Debe Ingresar ambos datos");
            return;
         }
    
    if ($usuario)
        {
            reestablecerPWD($usuario);
            require_once 'Vista/olvidoPwdResp.php';
        }
    else
        {
            header("Location: index.php?accion=olvidoPwd&error=Usuario No Encontrado");
        }
}
function validaLogin(){
    logout();
    require_once("Modelo/Usuario.php");
    $usuario=false;
    if (isset($_REQUEST['usuario']) and $_REQUEST['usuario']!="" and
            isset($_REQUEST['pwd']) and $_REQUEST['pwd']!="")
        $usuario=Usuario::validaUsuario($_REQUEST['usuario'],$_REQUEST['pwd']);
    
    if ($usuario)
        {
            session_start();
            $_SESSION["usuario_name"]=$_REQUEST['usuario'];
            $_SESSION["pwd"]=$_REQUEST['pwd'];
            $_SESSION["tipo"]=$usuario['tipo'];
            require_once("Vista/encabezado.php");
            if ($usuario['tipo']=="jugador")
                {
                    require_once("Controlador/JugadorControlador.php");
                    $juego=JugadorControlador::mostrar_Menu($usuario);
                    JugadorControlador::verRanking($usuario, $juego);
                }
            else if ($usuario['tipo']=="admin")
                {
                    require_once("Controlador/UsuarioControlador.php");
                    $juego=UsuarioControlador::mostrar_Menu($usuario);
                    UsuarioControlador::busquedaJuegos();
                }
                
        }
    else
        {
            header("location:index.php?error=1");
        }
}
function logueado(){
    require_once("Modelo/Usuario.php");
    session_start();
    
    if (!isset($_SESSION['usuario_name']) or !isset($_SESSION['pwd'])  or !isset($_SESSION['tipo']))
        {
            logout();
            return false;
        }
    else if ($usuario=Usuario::validaUsuario($_SESSION['usuario_name'],$_SESSION['pwd']))
            return $usuario;
    return false;
}
function accionValida($accion, $tipo,$usuario){
    if (!$accion)
        {
            if ($usuario)
                    return true;
            return false;
        }
    return true;
}
function formatoFecha($fecha){
    //formato dd/mm/yyyy
    $expresion='(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)[0-9]{2}';
    return preg_match($expresion, $fecha);
}
function obtenerFormatoFechaBD($fecha){
    $fecha_arreglo=explode("/",$fecha);
    return $fecha_arreglo[2]."-".$fecha_arreglo[1]."-".$fecha_arreglo[0];
}
function CSV_to_array($nom_archivo) {
    $archivo=fopen($nom_archivo, "r");
    $arreglo=array();
    $columnas="";
    while(($csv = fgetcsv($archivo, 9999999, ',', '"'))!==FALSE) {
        $arreglo[]=$csv;
    }
    fclose($archivo);
    return $arreglo;
}
?>
